package Mitglied;
import java.awt.event.ActionEvent;
import java.io.Serializable;
import java.util.ArrayList;
import java.util.List;

import javax.swing.JOptionPane;



public class ArrayMitgliederListe implements Serializable
{
	/**
	 * 
	 */
	private static final long serialVersionUID = 1L;
	protected  List<Mitglied> mitglarray= new ArrayList<Mitglied>(); // anlegen einer neuen ArrayListe
	
	public ArrayMitgliederListe() //Testdaten die fix in der ArryListe sind 
	{
		testdaten();
	}
	
	public void add(Mitglied m)  //daten von Mitglied hinzuf�gen
	{
		mitglarray.add(m);
	}
	
	private void testdaten() //sind fixe Werte in der Arraylist und diese sollen beim �ffnen des Programms angezeigt werden
	{
		try 
		{
			mitglarray.add(new Mitglied("Max Mustermann", "11111", "Fisch", 1));
			mitglarray.add(new Mitglied("Maria Musterfrau", "22222", "Fleisch", 2));
			mitglarray.add(new Mitglied("Josef Test", "33333", "Suess", 3));
		} 
		catch (Exception e) 
		{
			e.printStackTrace();
		}
	}
	
	@Override
	public String toString() // String Methode f�r die Ausgabe
	{
		StringBuffer s= new StringBuffer();  // Der StringBuffer holt sich alle Informationen, die in irgendwelcheen Strings gespeichert sind
		for (Mitglied m: mitglarray)
		{
			s.append("Alle Mitglieder: " + "\n" + m.getName()+"\n" + m.getMgNr() +"\n" + m.getGenussbereich() + "\n" + m.getPersoenlichebenotung()+ "\n\n"); //Werte ausgeben, Name, Nr, Genuss, Note... 
		}
		return s.toString();  // zur�ckliefern des Strings
	}
	
	public List<Mitglied> getListe()  //Dient dazu, dass die Werte der Arrayliste zur�ckgegeben werden und beim �ffnen des Programms auf der JList ausgegeben werden
	{
		return mitglarray;
	}
	
	//Methode zum l�schen eines Datensatzes aus der Araylist
	public void deleteMitglied(Mitglied m) 
	{
		mitglarray.remove(m);
	}
	
	//Methode die �berpr�ft, ob die Mitgliedsnummer schon vorhanden ist
	public boolean checkMitgliednummer(Mitglied m) //True = Nummer schon vorhanden 
	{
		for (Mitglied p: mitglarray)
		{
			System.out.println(m.getMgNr()+ "+" +p.getMgNr() );
			if(Integer.parseInt(p.getMgNr()) == Integer.parseInt(m.getMgNr()))
			{
				System.out.println("TRUE");
				return true;
			}
		}
		return false;
	}
	
	//Methode um Mitglied zu aktualisieren
	public void aktualisiereMitglied(Mitglied alt, Mitglied neu) throws Exception
	{
		if (Integer.parseInt(alt.getMgNr()) == Integer.parseInt(neu.getMgNr()))
		{

				deleteMitglied(alt);
				add(neu);			
		}
		else if (!checkMitgliednummer(neu)) //wenn die Mitgliedernummer des neuen Mitglieds nicht vorhanden ist 
		{
				deleteMitglied(alt);
				add(neu);
		}
		else throw new Exception ("Mitgliedernummer bereits vorhanden");
	}	
}
